מבוא לראיה חישובית וביולוגית עבודה 1 הגשה בדוא"ל ל,boazar@bgu.ac.il כקובץ zip המכיל קבצי קוד וקובץ PDF עם התשובות לשאלות הפתוחות. מומלץ להקליד את התשובות במחשב, יש להקפיד על כתב ברור וקריא בהגשת קובץ תשובות סרוק. 1. כיול מצלמה בעצרת Matlab הורידו את הקובץ pattern.png מאתר הקורס והדפיסו את לוח הכיול הנמצא בה. צלמו תמונה של הלוח בזווית שאינה ישרה והניחו מערכת ייחוס גלובלית שראשיתה בפינה השמאלית התחתונה של הלוח, ציר X ו- Y מקבילים למישור הלוח וציר Z מאונך למישור זה. גודל משבצת בלוח תציין גודל יחידה. כתבו קוד מטלב המאפשר למשתמש לאתר מספר נקודות כרצונו ע"ג הלוח, כאשר בכל פעם ניתנת למשתמש הנחיה לבחור נקודה בקואורדינטה מסוימת ע"ג הלוח. בחירת הנקודות תסתיים כאשר המשתמש ילחץ על מקש ה- Enter. הקדישו מחשבה לבחירת סדר הנקודות הנדרשות מהמשתמש, בקשו ראשית נקודות שיאפשרו דיוק מרבי בכיול המצלמה. טיפ: היעזרו בפונקציות ginput ו- title. בעזרת הנקודות שנבחרו, חשבו את הפרמטרים הפנימיים )intrinsic( והחיצוניים )extrinsic( של המצלמה. משום שהמשתמש עשוי לבחור למעלה מ- 6 נקודות, יהיה עליכם למצוא התאמה מיטבית למטריצת הכיול, ניתן להשתמש בפונקציית fminsearch לצורך זה. לאחר החישוב, הציגו בעזרת פונקציית scatter3 את מיקום המצלמה והנקודות שנבחרו במערכת הייחוס המוגדרת ע"י הלוח. כמו כן הציגו את אורך המוקד שהתקבל עבור המצלמה והשוו אותו לאורך המוקד של המצלמה ע"פ נתוני היצרן. אורך מוקד של רוב המצלמות הסלולריות ניתן למצוא באתר,gsmarena.com אורך מוקד של מצלמות כיס ניתן למצוא באתר.dpreview.com
הגשת החלק התכנותי של המטלה תכלול את הקבצים הבאים: תמונת הכיול. - Calib.jpg קובץ Matlab המאפשר למשתמש לדגום נקודות ושומר אותן תחת השם - Sample_Points.m.points.mat קובץ Matlab הקורא את הנקודות השמורות ומציג את תוצאת הכיול. - Calibrate_Cam.m.Sample_Points.m קובץ המכיל את נק' הכיול שנדגמו ע"י - points.mat הרצת Calibrate_Cam.m בתקיית הפרוייקט תציג את תוצאות הכיול. נמקו את אסטרטגיית בחירת הנקודות שלכם מדוע בחרתם בסדר זה וכיצד הוא משפר את הדיוק? במידה והמשתמש בחר למעלה מ- 6 נקודות, מדוע לא ניתן לחלץ את מטריצת הכיול ע"י פתרון מערכת משוואות? האם קיימים תנאים בהם ניתן היה לחלץ את המטריצה כאשר נתונות למעלה מ- 6 נקודות? בונוס: בהנחה שגודל ריבוע בדף הכיול בתמונת הדוגמא הוא 2.5x2.5 ס"מ, מה אורך המוקד של המצלמה בה הוא צולם? צרפו קובץ points_2.mat המכיל את נק' הכיול בעזרתן הגעתם לפתרון. 2. קונבולוציה 2.1. נתונים שני ה- kernels הבאים: F 1 2 1 2 4 2 1 2 1 G 1 2 1 2 4 2 1 2 1 I 0 0 0 1 0 0 0 ותמונה דו-מימדית 7X7 הבאה: למה יכולים לשמש ה- kernels G ו- F בהקשר של ראיה )חישובית ו/או ביולוגית(? כיצד ניקרא signal מהסוג של תמונה I? *I. תשובתך צריכה להיות תמונה 7X7 של רמות אפור )קרי, מספרים(. חשב את G. תשובתך צריכה להיות תמונה 7X7 של רמות אפור. F *( I * G) חשב את תכנן פילטר )kernel( H כך שתוצאת סעיף ד' תהיה שווה ל-.I*H.I.II.III.IV.V
2.2 קונבולוציה בדו-מימד חשבו בMatlab את ערכי הפונקציה sin (y) I(x, y) = cos(x) + בתחום [0,2π] [0,2π] עבור גודל צעד 0.1. בחרו 3 סוגי קרנלים שונים באופיים מתוך אלו הזמינים בפונקציית.fspecial בעזרת הפונקציה, צרו דוגמא לכל קרנל בגודל לבחירתכם ובצעו קונבולוציה בינו לבין הפונקציה. הגשתכם תכלול קובץ conv2_ker.m אשר הפעלתו תציג,figures 4 בראשונה תוצג הפונקציה בטווח הנתון ובנותרות תוצאת כל אחת מהקונבולוציות. הציגו את התוצאות הללו גם בהגשתכם הכתובה בצירוף הסבר לגבי משמעות תוצאת כל אחת מהקונבולוציות. Convolution in the wild 2.3 בחרו תמונה טבעית )נקודות בונוס ינתנו לתמונה מקורית, קרי לא משהו שמצאתם באינטרנט, שתשעשע את הבודק( ובצעו עליה את הפעולות הבאות בעזרת קונבולוציה עם קרנל מתאים: - טשטוש - חידוד - הדגשת גבולות אנכיים בלבד בנוסף, בצעו קונבולוציה עם קרנל אקראי מה תוכלו לומר על התמונה שהתקבלה? בעבודתכם הציגו את הקרנל שבחרתם לכל פעולה, לצד התוצאה שהתקבלה מהפעלתו. כמו כן כללו קובץ nat_conv.m שיציג את חישוב הקונבולוציות ואת קובץ התמונה המקורי. 3. זיהוי גבולות 3.1. תהא נתונה תמונת רמות האפור הבאה: I( x, y) x sin y יהא E1 אופרטור לזיהוי גבולות המבוסס על מציאת הנקודות בהם I מקבל מקסימום מקומי ויהא E2 אופרטור אחר לזיהוי גבולות המבוסס על מציאת נקודות ה Zero Crossing של הלפלסיאן. האם לאחר הפעלת E1 ו E2 על התמונה הנתונה תתקבלנה תוצאות זהות או שונות? נמק את תשובתך. 3.2. תהא נתונה תמונת רמות האפור הבאה: I( x, y) C x y 1 4 1 3 12 6
כאשר C הינו קבוע כלשהו שערכו נקבע כך ש לעולם אינה מקבלת ערכים שליליים בתחום התמונה. יהא E1 אופרטור לזיהוי גבולות המבוסס על מציאת נקודות ה Zero Crossing של הלפלסיאן. מהי צורת הגבול שימצא אופרטור זה אם יופעל על התמונה. 3.3. זיהוי גבולות בדימות רפואי הורידו את תמונת mri.jpg מעמוד המטלה, נסו לחלץ את גבולות התמונה בעזרת פונקציית edge בMatlab, הציגו תוצאות עבור Canny, Log ו- Prewitt לכל הפחות. האם התוצאות זהות? הסבירו מדוע. הגשתכם תכלול קובץ edge_mri.m שהרצתו תציג את מפות הגבולות שהתקבלו מכל ריצה תחת הפרמטרים הטובים ביותר שמצאתם. הציגו את התוצאות הללו בהגשתכם לצד ניתוח ההבדלים ביניהם. 4. קריאה מהנה! להלן קטע התוך המאמר Brain What the Frog s eye Tells the Frog s שקראתם בבית.
בקטע מודגשים שני מושגים המופיעים תדיר בהקשר של מערכות ראיה ביולוגיות. הסבר כל אחר ממושגים אלו ע"י משפט יחיד ניתן להסתכל על תא אופייני מהסוג הנדון בקטע כמערכת הנותנת פלט כלשהו עבור אות )signal( נתון. בחן את שני התרשימים הבאים המתארים את פעולת המערכת בסיטואציות שונות:.I.II התרשים הנ"ל מתאר תנועה של אובייקט קטן וכהה על רקע בהיר. האובייקט נע בכיוון מסווים ולאחר מכן בכיוון הנגדי לו. התרשים הימני מתאר את האובייקט נע בשתי מהירויות שונות והשמאלי מתאר את האובייקט נע באותה המהירות בשלוש עוצמות תאורה שונות. בתרשימים מתוארת עוצמת הקלט )כגרף( ועוצמת הפלט )כתרשים יריות, או )skipesspikes בכל אחד מהמקרים. בהסתמך על התרשימים הנ"ל ועל המתואר בקטע, הסבר האם ה Sustained-Contrast Detectors הם בעלי התנהגות ליניארית או לא.